# 写一个管理商品的程序，商品文件格式在a.json里面
# 提供商品的增删改查功能
# choice = input('请输入你的选择:1、查看商品 2、新增商品 3、修改商品 4、删除商品')
# 1、查看商品，输入商品名称，print单个商品的信息，价格、数量，输入all，查看所有商品
# 2、新增商品，输入商品名称、数量、价格，数量是大于0的整数，价格必须是大于0的数值，
# 如果商品存在，无法添加
# 3、修改商品，输入商品名称、数量、价格，商品存在才可以修改 数量是大于0的整数，价格必须是大于0的数值，
# 4、输入商品名称，如果存在，删除

import json
import string
# import sys
with open('a.json',encoding='utf-8')as f:
    shop=json.load(f)#将json文件信息转换为字典
    # print(shop)
choice = str(input('请输入你的选择:1、查看商品 2、新增商品 3、修改商品 4、删除商品:'))

global shop_name #商品名称
global shop_count #商品数量
global shop_price #商品价格

def check_shop():
    shop_name = input('请输入你要查看的商品名称:')
    if shop_name in shop:
        shop_count = shop.get(shop_name).get('count')
        shop_price = shop.get(shop_name).get('price')
        print('您查看的商品名称是:{shop_name},商品数量为:{shop_count},商品价格为:{shop_price}'.format(shop_name=shop_name,shop_count=shop_count,shop_price=shop_price))
        return shop_name,shop_count,shop_price
        # sys.exit()
    elif shop_name == 'all':
        print('您查看的所有商品信息为:',shop)
        return shop
        # sys.exit()

def add_shop():
    shop_name = input('请输入你要添加的商品名称:')
    shop_count = input('请输入你要添加的商品数量:')
    shop_price = input('请输入你的商品价格:')

    if float(shop_price) > 0 and isinstance(int(shop_count),int):# 判断字符串中的数字大于0的方法:字符串转换为整数;判断一个数是否为整数的方法:isinstance(int(shop_count),int)
        True
        if shop_name in shop:
            print('商品已存在,无法添加')
        else:
            shop[shop_name]={}#json文件里写入字典套字典,先定义最外层字典,然后把count和price加入
            shop[shop_name]['count'] = shop_count
            shop[shop_name]['price'] = shop_price
            with open('a.json', 'w', encoding='utf-8')as fw:
                json.dump(shop, fw, ensure_ascii=False, indent=4)
    else:
        print('商品价格需大于零,且商品价格应为整数,请重新输入')
    return shop_name,shop_count,shop_price

def update_shop():
    shop_name = input('请输入你要更新的商品名称:')
    shop_count = input('请输入你要更新的商品数量:')
    shop_price = input('请输入你要更新的商品价格:')

    if float(shop_price) > 0 and isinstance(int(shop_count),int):
        True
        if shop_name in shop:
            shop[shop_name]['count'] = shop_count
            shop[shop_name]['price'] = shop_price
            with open('a.json', 'w', encoding='utf-8')as fw:
                json.dump(shop, fw, ensure_ascii=False, indent=4)
    else:
        print('商品价格需大于零,且商品价格应为整数,请重新输入')
    return shop_name,shop_count,shop_price

def del_shop():
    shop_name = input('请输入你要删除的商品名称:')
    if shop_name in shop:
        del shop[shop_name]
        with open('a.json', 'w', encoding='utf-8')as fw:
            json.dump(shop, fw, ensure_ascii=False, indent=4)
        print('您已删除的商品名称为:{}'.format(shop_name))
    return shop_name


if choice=='1':
    check_shop()
elif choice =='2':
    add_shop()
elif choice == '3':
    update_shop()
elif choice == '4':
    del_shop()



